package com.example.lt.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.lt.entity.user.Favorites;

import java.util.List;

/**
 * @Author 小涛Tao
 * @Date: 2024/07/28/16:37
 * version 1.0 注释：
 **/
public interface FavoritesService extends IService<Favorites> {

    /**
     * 判断对应的收藏夹是否存在
     * @param userId 用户id
     * @param defaultFavoritesId 收藏夹id（默认的）
     */
    void exist(Long userId, Long defaultFavoritesId);

    /**
     * 删除收藏夹
     * @param id 收藏夹id
     * @param userId 用户id
     */
    void remove(Long id, Long userId);

    /**
     * 获取用户的所有收藏夹
     * @param userId 用户id
     * @return 返回用户的所有收藏夹，包括收藏夹下的视频总数
     */
    List<Favorites> listByUserId(Long userId);

    /**
     * 视频的收藏或取消收藏
     * @param favoritesId 收藏夹id
     * @param videoId 视频id
     * @return true：收藏操作   false：取消收藏操作
     */
    boolean favorites(Long favoritesId, Long videoId);

    /**
     * 获取用户收藏夹下的视频id集合
     * @param favoriteId 收藏夹id
     * @param userId 用户id
     * @return 视频id集合
     */
    List<Long> listVideoIds(Long favoriteId, Long userId);

    /**
     * 收藏状态
     * @param videoId 视频id
     * @param userId 用户id
     * @return
     */
    Boolean favoritesState(Long videoId, Long userId);
}
